combinatiorial analysis